1. Field of the Invention
The technical field of the invention is that of satellite radio-navigation. It concerns the current “GPS” system, GPS being an acronym for global positioning system, and the future “Galileo” system. The technical field involved is more particularly that of the demodulation means for the receptions systems.
2. Description of the Prior Art
Satellite radio-navigation makes it possible to obtain the position of a signal receiver by a resolution similar to triangulation, using the pseudo-distances measured on the basis of the signals sent by several satellites. Each satellite transmits a signal made up of a sinusoidal carrier, the frequency of which is between 1.2 and 1.6 GHz. This carrier is modulated by a binary spreading code, the frequency of which is between 1 and 10 MHz.
FIG. 1 represents a first transmitted signal S modulated by its spreading code C.E. The first graph of FIG. 1 represents the sinusoidal variations of the initial carrier P as a function of time t, the second represents the spreading code C.E., the third represents the carrier modulated by its spreading code S, the fourth the self-correlation function A of the local code, and finally the fifth graph represents its power spectrum as a function of the frequency f.
The carrier can also be modulated by data bits, the frequency of which is between 1 Hz and 50 Hz. The spreading sequence has a period varying from one millisecond to a week. It is specific to each satellite and the sequences are decorrelated between the different satellites, so that they can be dissociated in the received signal.
A signal transmits either a data signal alone, or a data signal and a “pilot” signal that is not modulated by data bits.
The receiver includes a receiving antenna and means of demodulating the signals transmitted by the visible satellites. These demodulation means correlate the signal received by the antenna with a local carrier and a local code specific to each satellite. It is the sequence of the local code, identical to that of the received satellite, which enables the receiver to choose the tracked satellite.
To synchronize the local code and the local carrier on the signal received from the satellite contained in the signal received by the antenna, the receiver uses in parallel two tracking devices which are a code loop and a carrier loop. The functional block diagrams of these loops are represented in FIG. 2 and are detailed hereinbelow.
The code loop is used to position a local code in phase with the code contained in the received satellite signal S so as to produce a correlation giving the maximum energy.
The carrier loop is used to lock the frequency or the phase of the local carrier with respectively the frequency or the phase of the received carrier, in order to maximize the result of the correlation.
The presence of a signal at the output of the correlation with a high amplitude, that is to say significantly greater than what the ambient noise would give in the absence of satellite signal, means that the local code and the local carrier are synchronized on the received signal, which makes it possible to measure, at each instant, the transmission time and the Doppler of the received signal, via the phase of the local code and the speed of the phase of the local carrier.
The initial synchronization of the phase of the local code and of the local carrier on the signal received from the satellite is performed in a preliminary “acquisition” phase. This phase is not detailed in this description because it represents a departure from the inventive device. It is well known to those skilled in the art and does not pose any particular difficulties. As a general rule, it consists in searching for energy by scanning an area of uncertainty code-wise and Doppler-wise until the correlation gives an adequate signal level.
More specifically, as indicated in FIG. 2, the code loop uses at least two correlation channels, with a local code leading and a local code lagging relative to the reference code of the one-off channel, the local carrier being common to all three channels. These correlation channels are represented by the three arrows issuing from the correlation integrator ICOR. The loop seeks to equalize the levels at the output of the two correlation channels by feedback on the phase of the local code using:                a code generator GC;        a correlation integrator ICOR which performs the integration of the correlation;        a code discriminator DC which measures the energy difference between the two channels;        a loop corrector CC which filters the discriminator and produces a speed correction;        a numerical control operator, also called NCO, which converts the speed command into a local code phase.        
When the two levels are equal, the reference code of the one-off channel is in phase with the received satellite code, which ensures a maximum of efficiency in the correlation on this channel, excluding the loss due to the Doppler effect, if the frequency of the local carrier is not correctly locked onto that of the received carrier.
There are two types of carrier loop: frequency loops and carrier phase loops.
A frequency loop is used to match the frequency of the local carrier with that of the received carrier, firstly to maximize the signal collected after the correlation and secondly to supply a Doppler measurement to the tracked satellite.
A phase loop is used to lock the phase of the local carrier onto the phase of the received carrier to within modulo 2π in order to improve the accuracy of the code measurement thanks to a smoothing of the code by the phase of the carrier. A phase loop provides much richer information than a frequency loop, because the trends of the measured carrier phase very accurately reflect the trends of the pseudo-distances, without drift, unlike the measurements of an integrated frequency loop. It is this property which is used to greatly enhance the accuracy of the code measurement by filtering over a very long time. The difference between the code pseudo-distance measurement and the carrier pseudo-distance measurement is filtered and then the phase measurement of this filtered difference is corrected to find a very accurate code measurement.
A carrier phase loop, also called PLL, standing for phase-locked loop, uses the one-off correlation channel and locks the phase of the local carrier onto the phase of the received carrier by a feedback on the local phase thanks to:                a phase discriminator DP which measures the difference between the local phase and the received phase;        a loop correlator CP which filters the discriminator and produces a speed correction;        a carrier NCO which converts the speed command into a local carrier phase PL.        
In fact, the NCO command is the image of the Doppler and the NCO produces a phase at the frequency fcode or fcarrier called heel, augmented by the Doppler speed command, positive or negative.
The performance criteria of the tracking loops are:                accuracy;        robustness. Robustness should be understood to mean the capacity of a loop to remain attached and therefore to limit the phase error within a bounded range. The factors affecting robustness are:                    the various noises that can be ambient thermal noise, noise due to interference, attenuation of the wanted signal, etc.;            the dynamic range due to the movement of the carrier or to clock defects.                        
Thanks in particular to the smoothing of the code by the carrier, the accuracy of a few tens of centimeters of the code is generally sufficient as long as the phase loop remains attached.
Similarly, the carrier accuracy of a few millimeters is sufficient for most applications.
The code loop is assisted in speed by the carrier loop, the code NCO command being the sum of the output of the code corrector and of the carrier NCO command as can be seen in FIG. 2, this sum being symbolized by the ringed+symbol. The code loop can have a narrow bandwidth, the robustness of the code loop to noise and to dynamics being linked to that of the carrier. As long as the carrier remains attached, the code loop remains attached and the accuracy remains good. As for the robustness of the receiver, its weak point is therefore the carrier phase loop. To improve noise resistance, it would be necessary to minimize its bandwidth. To improve dynamic resistance, it would be necessary to maximize its bandwidth. A trade-off is therefore required.
In current receivers, the implementation of the tracking loops is divided into two components:                one part working at high frequency implemented by electronic components of the ASIC or FPGA type, the working frequency ranging from 1 MHz to 100 MHz;        one part working at low frequency implemented as software, the measurement frequency being situated around 50 Hz.        
As an example, FIG. 3 represents a carrier loop. The hardware part is represented in the first broken-line rectangle on the left of FIG. 3. It comprises:                a 0 order blocker B0;        a carrier NCO which is in fact a Doppler speed-driven integrator generating the carrier local phase;        a sine and cosine trigonometric function table generating the local carrier PL;        a correlator Cor performing the correlation of the local signals with the received signal, symbolized by the ringed x symbol;        integration means ICOR working on intervals of duration T coinciding with the low frequency of the software.        
The software part is represented in the second broken-line rectangle on the right of FIG. 3. The software part handles the driving of the NCOs, based on the result of the correlation produced at low frequency by the hardware part. It mainly comprises a phase discriminator DP and a code loop corrector CP. Hereinafter in the description, T is used to denote the duration or cycle time of a basic task of the software.
The practical implementation of the tracking loops incurs two sources of delay:                delay due to the time it takes for the software to compute the NCO command;        delay due to the NCO which is driven speed-wise and not instantaneous phase-wise.        
Since the code loop is assisted speed-wise by the carrier loop, it has a narrow bandwidth relative to the frequency of the loops, and these delays have no notable effect on the performance of the code loop.
However, the delays in the carrier loop have the unfortunate effect of rendering the behavior in closed loop mode unstable, which makes it necessary to maintain a small loop band in front of the pre-detection band BFI equal to 1/T which corresponds to the inverse of the working frequency of the software part. If the delays in the carrier phase loop are not compensated, a margin of stability between the pre-detection band and the loop band must be retained. This means having a smaller loop band and therefore a lesser dynamic resistance.
The delay due to the computation time can be minimized by optimizing the software architecture, but this incurs additional development costs, load peaks that are prejudicial to correct operation and uncertainty concerning the command application delay. FIG. 4 illustrates this delay. This figure represents the variations of the different phases as a function of the cycle time T. The time t is subdivided with N periods of duration T, each period being indexed nT, n being an integer. The first curve represents the local phase, the second curve represents the received phase. The trapezoid-shaped dotted area represents the argument of the complex signal Zp(n) obtained from the correlation integrator. The phase discriminator is represented by the angle θ(n). The slope of the local phase at the end of the computation time and during the application time is denoted C(n+1). As can be seen in this FIG. 4, the delay due to the computation time TC leads to an uncertainty concerning the command application delay.
The delay due to the homing of the NCO can be cancelled by instantaneously repositioning the phase at the output of the NCO based on a command that would no longer be speed-oriented but hop-oriented. This point is illustrated in FIG. 5 using the same notations as previously. However, this is not compatible with the Doppler and would mean having to drive the NCO both hop-wise and speed-wise, hence a more complex receiver.